CA_PY,O_PY=1615136,1293872
function geta(add) return gg.getValues({{address=add,flags=32}})[1].value end function getv(add,fla) if fla==nil then fla=4 end return gg.getValues({{address=add,flags=fla}})[1].value end function setv(add,v,f) if f==nil then f=4 end gg.setValues({{address=add,value=v,flags=f}}) end function addv(add,f) if f==nil then f=4 end gg.addListItems({{address=add,flags=f}}) end function jzdw(tt) cs=gg.getRangesList('libGameCore.so:bss')[1]['start'] for i=1,#tt do cs=geta(cs+tt[i]) end return cs end function tzz(tt) cs=0 for i=1,#tt do cs=geta(cs+tt[i]) end return cs end function gsh(tz,i) local cleanedString=tz:gsub(",","") local parts={} for part in cleanedString:gmatch("[^;]+") do table.insert(parts,part) end for w,v in ipairs(parts) do if w==i then return tonumber(v) end end end function jxlm(lm) CA_OLD = jzdw({CA_PY})+0x4D8
CAJZ=geta(CA_OLD)
CA_SL=getv(CA_OLD+0x1C)
LM_TZ=getv(jzdw({CA_PY,0x4D8,0,0x10,0x10}))
Tab_1,Tab_2,Tab_3,Tab_4,Tab_5,Tab_6,Tab_7,Tab_8,Tab_9,Tab_CA={},{},{},{},{},{},{},{},{},{}
for i=0,CA_SL-1 do
    table.insert(Tab_1, {address=CAJZ+i*0x18,flags=32})
end
for i, v in pairs(gg.getValues(Tab_1)) do
for i_=0,400 do
table.insert(Tab_2, {address=v.value+i_*0x34,flags=4})
table.insert(Tab_3, {address=v.value+i_*0x34+4,flags=4})
table.insert(Tab_4, {address=v.value+i_*0x34+0x10,flags=32})
end
end
Tab_2,Tab_3,Tab_4=gg.getValues(Tab_2),gg.getValues(Tab_3),gg.getValues(Tab_4)
for i, v in pairs(Tab_4) do
table.insert(Tab_5, {address=v.value+0x10,flags=32})
end
for i, v in pairs(gg.getValues(Tab_5)) do
table.insert(Tab_9, {address=v.value,flags=4})
table.insert(Tab_6, {address=v.value+0x10,flags=4})
table.insert(Tab_7, {address=v.value+0x14,flags=4})
table.insert(Tab_8, {address=v.value+0x20,flags=32})
end
Tab_6,Tab_7,Tab_8=gg.getValues(Tab_6),gg.getValues(Tab_7),gg.getValues(Tab_8)
for i,v in pairs(gg.getValues(Tab_9)) do
if v.value==LM_TZ then
--Tab_CA[Tab_2[i]['value']..';'..Tab_3[i]['value']]=Tab_8[i]['address']
Tab_CA[Tab_6[i]['value']..';'..Tab_7[i]['value']]=Tab_8[i]['address']
end
end
 for a,b in pairs(Tab_CA) do if a==lm then  return b end end end function dw(wz,cs)return geta(geta(wz+8*(cs-1))+0x28) end function CAJX(CA_Tab) CAJZ=jzdw({CA_PY,0x4D8}) SL=getv(jzdw({CA_PY})+0x4d8+0x1c) Tab_1,Tab_2,Tab_3,Tab_4,Tab_5,Tab_6,Tab_CA={},{},{},{},{},{},{} for i=0,SL-1 do table.insert(Tab_1, {address=CAJZ+i*0x18,flags=32}) end for a,b in pairs(gg.getValues(Tab_1)) do for i=0,400 do table.insert(Tab_2, {address=b.value+0x10+i*0x34,flags=32}) end end for a,b in pairs(gg.getValues(Tab_2)) do  table.insert(Tab_3, {address=b.value+0x10,flags=32})  end for a,b in pairs(gg.getValues(Tab_3)) do table.insert(Tab_4, {address=b.value+0x10,flags=4}) table.insert(Tab_5, {address=b.value+0x14,flags=4}) table.insert(Tab_6, {address=b.value+0x20,flags=32}) end Tab_4,Tab_5,Tab_6=gg.getValues(Tab_4),gg.getValues(Tab_5),gg.getValues(Tab_6) local Tab_T={} for a,b in pairs(Tab_6) do if Tab_CA[Tab_4[a].value..';'..Tab_5[a].value]==nil then Tab_CA[Tab_4[a].value..';'..Tab_5[a].value]=b.value Tab_T[Tab_4[a].value..';'..Tab_5[a].value]=b.address end end local Tab_8={} for i1,v1 in pairs(CA_Tab) do for i2,v2 in pairs(v1) do for i3,v3 in pairs(v2) do for i4,v4 in pairs(v3) do for a,b in pairs(Tab_CA) do if i1==a then table.insert(Tab_8, {address=tzz({b+(i2-1)*8,0x28,0})+v4['d'],flags=v4['f'],value=v4['v'],freeze=true}) break end end end end end end if #Tab_8>0 then gg.setValues(Tab_8 ) gg.addListItems(Tab_8)  gg.alert('成功修改'..#Tab_8..'个值') end end 
function OJX_Str(Tab_OXG)
Sta_Add=gg.getRangesList('libGameCore.so:bss')[1]['start']+O_PY
Sta_Num=getv(Sta_Add+0x1C)
Sen_Add=geta(Sta_Add)
Tab_1,Tab_N,Tab_A,Tab_P={},{},{},{},{}
for i=0,Sta_Num-1 do
table.insert(Tab_1, {address=Sen_Add+i*8,flags=32})
end
for i, v in pairs(gg.getValues(Tab_1)) do
table.insert(Tab_N, {address=v.value+8,flags=4})
table.insert(Tab_A, {address=v.value+0x10,flags=32})
table.insert(Tab_P, {address=v.value+0x30,flags=32})
end
Tab_N,Tab_A,Tab_P=gg.getValues(Tab_N),gg.getValues(Tab_A),gg.getValues(Tab_P)
Tab_Sta,Tab_Num,Tab_PY={},{},{}
Tab_S={}
for i, v in pairs(Tab_A) do
table.insert(Tab_PY, {address=Tab_P[i]['value']+0x14,flags=4})
table.insert(Tab_Num, {address=Tab_P[i]['value']+0x18,flags=4})
for n=0,Tab_N[i]['value']-1 do
table.insert(Tab_S, {address=v.value+n,flags=1})
end
end
Tab_s,Tab_Num,Tab_PY={},gg.getValues(Tab_Num),gg.getValues(Tab_PY)
for i, v in pairs(gg.getValues(Tab_S)) do
table.insert(Tab_s, v.value)
end
Str=string.char(table.unpack(Tab_s))
Tab_O,Num={},0
for fieldName in Str:gmatch("Databin/(.-)%.bytes") do
Num=Num+1
 Tab_O[fieldName]={Start=Tab_P[Num]['value']+0x98,End=Tab_P[Num]['value']+0x98+Tab_PY[Num]['value']*Tab_Num[Num]['value'],Offset=Tab_PY[Num]['value'],Number=Tab_Num[Num]['value']}
end
--print(Tab_O)
function ODW2(V,sta,py,num)
if Tab_OW==nil then Tab_OW={} end
if Tab_OW[sta]==nil then
Tab_OW[sta]={}
for n=0,num-1 do
table.insert(Tab_OW[sta], {address=py*n+sta,flags=4})
end
Tab_OW[sta]=gg.getValues(Tab_OW[sta])
end
for i, v in pairs(Tab_OW[sta]) do
if V==v.value then
return v.address
end
end
end
Tab_XG={}
for i, v in pairs(Tab_OXG) do
for m, t in pairs(v) do
for n, T in pairs(t) do
table.insert(Tab_XG,{address=ODW2(m,Tab_O[i]['Start'],Tab_O[i]['Offset'],Tab_O[i]['Number'])+T['d'],flags=T['f'],value=T['v']})
end
end
end
gg.setValues(Tab_XG)
gg.addListItems(Tab_XG)
gg.alert('>>成功修改'..#Tab_XG..'个数值')
end
function QJX(M)
CA_OLD = jzdw({CA_PY})+0x4D8
CAJZ=geta(CA_OLD)
CA_SL=getv(CA_OLD+0x1C)
LM_TZ=getv(jzdw({CA_PY,0x4D8,0,0x10,0x10}))
Tab_1,Tab_2,Tab_3,Tab_4,Tab_5,Tab_6,Tab_7,Tab_8,Tab_9,Tab_CA={},{},{},{},{},{},{},{},{},{}
for i=0,CA_SL-1 do
    table.insert(Tab_1, {address=CAJZ+i*0x18,flags=32})
end
for i, v in pairs(gg.getValues(Tab_1)) do
for i_=0,400 do
table.insert(Tab_2, {address=v.value+i_*0x34,flags=4})
table.insert(Tab_3, {address=v.value+i_*0x34+4,flags=4})
table.insert(Tab_4, {address=v.value+i_*0x34+0x10,flags=32})
end
end
Tab_2,Tab_3,Tab_4=gg.getValues(Tab_2),gg.getValues(Tab_3),gg.getValues(Tab_4)
for i, v in pairs(Tab_4) do
table.insert(Tab_5, {address=v.value+0x10,flags=32})
end
for i, v in pairs(gg.getValues(Tab_5)) do
table.insert(Tab_9, {address=v.value,flags=4})
table.insert(Tab_6, {address=v.value+0x10,flags=4})
table.insert(Tab_7, {address=v.value+0x14,flags=4})
table.insert(Tab_8, {address=v.value+0x20,flags=32})
end
Tab_6,Tab_7,Tab_8=gg.getValues(Tab_6),gg.getValues(Tab_7),gg.getValues(Tab_8)
for i,v in pairs(gg.getValues(Tab_9)) do
if v.value==LM_TZ then
--Tab_CA[Tab_2[i]['value']..';'..Tab_3[i]['value']]=Tab_8[i]['address']
Tab_CA[Tab_6[i]['value']..';'..Tab_7[i]['value']]=Tab_8[i]['address']
end
end
for i , v in pairs(M) do
if Tab_CA[v.DZ] and Tab_CA[v.XGDZ] then
xgsz=tzz({Tab_CA[v.XGDZ],8*(v.XGCS-1),0x28,0})
setv(tzz({Tab_CA[v.DZ],8*(v.DZCS-1),0x28}),xgsz,32)
end
end
end
function OJX(Tab_O) StartAddress=gg.getRangesList('libGameCore.so:bss')[1]['start']+O_PY StartNum=getv(StartAddress+0x18) Start_Add=geta(StartAddress) Tab_1,Tab_2,Tab_PY,Tab_Num,Tab_Rang={},{},{},{},{} for i=0,StartNum-1 do Tab_1[i+1]={address=Start_Add+8*i,flags=32} end for i, v in ipairs(gg.getValues(Tab_1)) do Tab_2[i]={address=v.value+0x30,flags=32} end for i, v in ipairs(gg.getValues(Tab_2)) do Tab_PY[i]={address=v.value+0x14,flags=4} Tab_Num[i]={address=v.value+0x18,flags=4} end Tab_PY,Tab_Num=gg.getValues(Tab_PY),gg.getValues(Tab_Num) for i, v in ipairs(Tab_PY) do Tab_Rang[i]={start=v.address+0x84,ending=v.address+0x84+v.value*Tab_Num[i]['value']} end function ODW2(cs) Tab_V[cs]={} for k=0,Tab_Num[cs]['value'] do Tab_V[cs][k+1]={address=Tab_Rang[cs]['start']+k*Tab_PY[cs]['value'],flags=4} end Tab_V[cs]=gg.getValues(Tab_V[cs]) end xg={} if Tab_V==nil then Tab_V={} end for i, v in pairs(Tab_O) do if Tab_V[i]==nil then ODW2(i) end for q, p in pairs(v) do if Tab_V[i]~=nil then for i_, v_ in pairs(Tab_V[i]) do if v_.value==q then for q_, p_ in pairs(p) do table.insert(xg, {address=v_.address+p_['d'],flags=p_['f'],value=p_['v']}) end end end end end end if #xg>0 then gg.setValues(xg) gg.addListItems(xg) gg.alert('成功修改'..#xg..'个数值') end end function TJX(Tab_time) local tt={} for q,p in pairs(Tab_T)do for a,b in pairs(Tab_time)do if q==b[1]then tt[#tt+1]={address=p-0xC,flags=4,value=b[2]}break end end end gg.setValues(tt) end function TZJX(tables) for a,v in pairs(tables)do if xg==nil then xg={}end if xg[a]==nil then xg[a]={}end wz=Tab_CA[v[1]] cs=tonumber(v[2]) tzwz=dw(wz,cs) xg[a]['address']=tzwz  xg[a]['flags']=32 end end function XGJX(tables) for a,v in pairs(tables)do if xg==nil then xg={}end if xg[a]==nil then xg[a]={}end wz=Tab_CA[v[1]] cs=tonumber(v[2])  xgwz=dw(wz,cs) xg[a]['value']=getv(xgwz,32) xg[a]['freeze']=true end end function ZZJX(Tab_TZ,Tab_XG) TZJX(Tab_TZ)XGJX(Tab_XG)for a,b in pairs(xg)do if b.value==nil or b.address==nil then xg[a]=nil end end if #xg>0 then  gg.setValues(xg)gg.addListItems(xg)end end
function TabJX(Tab)
DB={Ca=CAJX,O2=OJX_Str,Q=QJX}
for i , v in pairs(Tab) do
DB[i](v)
end
end
T={ -- table(6cc8522)
	['Ca'] = { -- table(1732421)
		['-1309661189;-584299007'] = { -- table(3677278)
			[1] = { -- table(8bc7d51)
				[1] = { -- table(41639b6)
					[1] = { -- table(bd036b7)
						['d'] = 100,
						['f'] = 16,
						['v'] = 2.0,
					},
				},
			},
		},
		['-1812513847;1545993342'] = { -- table(565a6f6)
			[7] = { -- table(d6b3af7)
				[1] = { -- table(4a98d64)
					[1] = { -- table(49ddbcd)
						['d'] = 80,
						['f'] = 4,
						['v'] = 0,
					},
					[2] = { -- table(dbd3c82)
						['d'] = 108,
						['f'] = 4,
						['v'] = 1,
					},
					[3] = { -- table(8e8f93)
						['d'] = 128,
						['f'] = 4,
						['v'] = 3000,
					},
					[4] = { -- table(b241bd0)
						['d'] = 140,
						['f'] = 4,
						['v'] = 0,
					},
					[5] = { -- table(1b967c9)
						['d'] = 176,
						['f'] = 4,
						['v'] = 0,
					},
					[6] = { -- table(8069ece)
						['d'] = 220,
						['f'] = 4,
						['v'] = 0,
					},
				},
			},
		},
		['-453237257;-1894431328'] = { -- table(fa3d856)
			[19] = { -- table(e9d23e2)
				[1] = { -- table(ca35373)
					[1] = { -- table(2e9c230)
						['d'] = 8,
						['f'] = 4,
						['v'] = 0,
					},
					[2] = { -- table(7d27ea9)
						['d'] = 116,
						['f'] = 4,
						['v'] = 90072,
					},
				},
			},
			[24] = { -- table(d3180d7)
				[1] = { -- table(9f8dc4)
					[1] = { -- table(ab944ad)
						['d'] = 416,
						['f'] = 4,
						['v'] = 544104,
					},
				},
			},
		},
		['-615708679;2044225218'] = { -- table(dd3e24)
			[1] = { -- table(afa9d8d)
				[1] = { -- table(c43b42)
					[1] = { -- table(4a78753)
						['d'] = 8,
						['f'] = 4,
						['v'] = -1,
					},
				},
			},
			[2] = { -- table(3c21890)
				[1] = { -- table(c808589)
					[1] = { -- table(c5ec98e)
						['d'] = 80,
						['f'] = 4,
						['v'] = 0,
					},
					[2] = { -- table(79945af)
						['d'] = 108,
						['f'] = 4,
						['v'] = 1,
					},
					[3] = { -- table(3d82dbc)
						['d'] = 128,
						['f'] = 4,
						['v'] = 3000,
					},
					[4] = { -- table(c62f145)
						['d'] = 140,
						['f'] = 4,
						['v'] = 0,
					},
					[5] = { -- table(c01f09a)
						['d'] = 176,
						['f'] = 4,
						['v'] = 0,
					},
					[6] = { -- table(53e8dcb)
						['d'] = 220,
						['f'] = 4,
						['v'] = 0,
					},
				},
			},
			[3] = { -- table(d869a8)
				[1] = { -- table(c465cc1)
					[1] = { -- table(87e7c66)
						['d'] = 8,
						['f'] = 4,
						['v'] = -1,
					},
				},
			},
			[4] = { -- table(4a63ba7)
				[1] = { -- table(b1e7854)
					[1] = { -- table(99b03fd)
						['d'] = 8,
						['f'] = 4,
						['v'] = -1,
					},
				},
			},
			[5] = { -- table(4e5f8f2)
				[1] = { -- table(4f0eb43)
					[1] = { -- table(b14c5c0)
						['d'] = 8,
						['f'] = 4,
						['v'] = -1,
					},
				},
			},
		},
		['-893485052;-452114930'] = { -- table(6ed9c2e)
			[12] = { -- table(807ff63)
				[1] = { -- table(4ca1760)
					[1] = { -- table(16b6419)
						['d'] = 92,
						['f'] = 4,
						['v'] = 54400,
					},
				},
			},
			[4] = { -- table(c63eff4)
				[1] = { -- table(461b31d)
					[1] = { -- table(79a4992)
						['d'] = 220,
						['f'] = 4,
						['v'] = 10000,
					},
				},
			},
			[7] = { -- table(78f6cde)
				[1] = { -- table(cf12ebf)
					[1] = { -- table(5a9498c)
						['d'] = 160,
						['f'] = 4,
						['v'] = 1,
					},
					[2] = { -- table(bc528d5)
						['d'] = 184,
						['f'] = 4,
						['v'] = 2,
					},
					[3] = { -- table(f2178ea)
						['d'] = 192,
						['f'] = 4,
						['v'] = 120000,
					},
					[4] = { -- table(313f7db)
						['d'] = 200,
						['f'] = 4,
						['v'] = 123500,
					},
				},
			},
			[8] = { -- table(255b3cf)
				[1] = { -- table(c60d15c)
					[1] = { -- table(e2b5c65)
						['d'] = 160,
						['f'] = 4,
						['v'] = 2,
					},
					[2] = { -- table(9bb4d3a)
						['d'] = 200,
						['f'] = 4,
						['v'] = 128000,
					},
				},
			},
			[9] = { -- table(b23bdeb)
				[1] = { -- table(d7a748)
					[1] = { -- table(a7a59e1)
						['d'] = 160,
						['f'] = 4,
						['v'] = 2,
					},
					[2] = { -- table(2810306)
						['d'] = 192,
						['f'] = 4,
						['v'] = 150000,
					},
					[3] = { -- table(c7e4dc7)
						['d'] = 200,
						['f'] = 4,
						['v'] = 128000,
					},
				},
			},
		},
		['1943980682;-1040446568'] = { -- table(3646d8a)
			[1] = { -- table(ddedffb)
				[1] = { -- table(7460818)
					[1] = { -- table(9d8f271)
						['d'] = 8,
						['f'] = 4,
						['v'] = 10000,
					},
				},
			},
		},
		['2075087239;1490283561'] = { -- table(38f94e8)
			[12] = { -- table(6f14701)
				[1] = { -- table(423b9a6)
					[1] = { -- table(22acfe7)
						['d'] = 92,
						['f'] = 4,
						['v'] = 182980,
					},
					[2] = { -- table(b3d1794)
						['d'] = 96,
						['f'] = 4,
						['v'] = 911570,
					},
				},
			},
			[21] = { -- table(6aa523d)
				[1] = { -- table(3c1ca32)
					[1] = { -- table(9ca8383)
						['d'] = 116,
						['f'] = 4,
						['v'] = 12000,
					},
				},
			},
			[23] = { -- table(327d4df)
				[1] = { -- table(e4bc52c)
					[1] = { -- table(85e8bf5)
						['d'] = 116,
						['f'] = 4,
						['v'] = 12000,
					},
				},
			},
			[25] = { -- table(99e1900)
				[1] = { -- table(9eed539)
					[1] = { -- table(2be577e)
						['d'] = 116,
						['f'] = 4,
						['v'] = 12000,
					},
				},
			},
		},
		['383579904;415224192'] = { -- table(8891ef)
			[15] = { -- table(47724fc)
				[1] = { -- table(ae7b785)
					[1] = { -- table(471d9da)
						['d'] = 380,
						['f'] = 4,
						['v'] = 1,
					},
					[2] = { -- table(d765e0b)
						['d'] = 420,
						['f'] = 4,
						['v'] = 783539,
					},
				},
			},
		},
		['786734194;-1085349620'] = { -- table(58ea046)
			[4] = { -- table(eb3c207)
				[1] = { -- table(11ef34)
					[1] = { -- table(4bce15d)
						['d'] = 8,
						['f'] = 4,
						['v'] = -1,
					},
				},
			},
			[5] = { -- table(c047ad2)
				[1] = { -- table(bc077a3)
					[1] = { -- table(78caa0)
						['d'] = 8,
						['f'] = 4,
						['v'] = -1,
					},
				},
			},
			[6] = { -- table(8eb3659)
				[1] = { -- table(88b721e)
					[1] = { -- table(158eaff)
						['d'] = 8,
						['f'] = 4,
						['v'] = -1,
					},
				},
			},
			[7] = { -- table(aaff0cc)
				[1] = { -- table(20fdf15)
					[1] = { -- table(5f8922a)
						['d'] = 8,
						['f'] = 4,
						['v'] = -1,
					},
				},
			},
			[8] = { -- table(ddb381b)
				[1] = { -- table(1514db8)
					[1] = { -- table(99c5791)
						['d'] = 8,
						['f'] = 4,
						['v'] = -1,
					},
				},
			},
		},
	},
	['O2'] = { -- table(ff13bb3)
		['Public_Client/Skill/skillcombine'] = { -- table(9592570)
			[182980] = { -- table(8fd40e9)
				[1] = { -- table(ad1d16e)
					['d'] = 176,
					['f'] = 4,
					['v'] = 3000,
				},
			},
			[544104] = { -- table(5e002a5)
				[1] = { -- table(1cd967a)
					['d'] = 176,
					['f'] = 4,
					['v'] = 30000,
				},
			},
			[783539] = { -- table(4be6e2b)
				[1] = { -- table(ae83288)
					['d'] = 176,
					['f'] = 4,
					['v'] = 3000,
				},
			},
			[90072] = { -- table(239e00f)
				[1] = { -- table(f83289c)
					['d'] = 176,
					['f'] = 4,
					['v'] = 15770,
				},
			},
		},
	},
	['Q'] = { -- table(e98e2f9)
		[1] = { -- table(1d6b23e)
			['DZ'] = '-615708679;2044225218',
			['DZCS'] = 2,
			['XGCS'] = 7,
			['XGDZ'] = '-1812513847;1545993342',
		},
	},
}
TabJX(T)